Method and System for Providing A Viewport Division Scheme for Virtual Reality (VR) Video Streaming

ABSTRACT

A method and a system for providing a viewport division scheme for VR video streaming are disclosed. A projection area of VR video is obtained. The projection area is divided into a plurality of grid blocks. A core area is defined in the projection area and divided into a plurality of core blocks. A plurality of viewport blocks are obtained by combining the core blocks. A mapping relationship between the plurality of viewport blocks and the grid blocks is established. The plurality of viewport blocks are related to a user&#39;s field of view. The plurality of viewport blocks are obtained in accordance with a mapping table. The video data is processed by different methods for a viewport area and a non-viewport area to have a better viewing experience.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims the priority and benefit of U.S. provisionalapplication 62/441,936, filed on Jan. 3, 2017, which is incorporatedherein by reference in its entirety.

BACKGROUND OF THE DISCLOSURE Field of the Disclosure

The present disclosure relates to video processing technology, and moreparticularly, to a method and a system for providing a viewport divisionscheme for virtual reality (VR) video streaming BACKGROUND OF THEDISCLOSURE

Virtual Reality (VR) is a computer simulation technology for creatingand experiencing a virtual world. For example, a three-dimensionalreal-time image can be presented based on a technology which tracks auser's head, eyes or hands. In the network-based virtual realitytechnology, full-view video data can be pre-stored on a server, and thentransmitted to a display device. A display device can be glasses, ahead-mounted display, etc. A video is displayed on the display deviceaccording to a user's field of view.

However, a high-resolution video data occupies large transmission ofbandwidth and requires high computing power from the display devices.Presenting high-resolution VR video on internet is difficult. Precisely,the existing video streaming technology can not fulfill the virtualreality. Therefore, in order to present VR video smoothly in real-time,it is desirable to further improve the existing video streamingtechnology to save bandwidth and reduce performance requirements fordisplay devices, by a new way to encode and store the VR video data onthe server.

It is a problem in the art to play back video data on a player end witha better viewing experience through less video data transmission.

SUMMARY OF THE DISCLOSURE

In view of this, the present disclosure provides a method and a systemfor providing a viewport division scheme for virtual reality (VR) videostreaming, which determine a viewport block of the VR video data andprocess the VR video data by different methods for a viewport area and anon-viewport area so as to have a better viewing experience at a playerend through less data transmission.

According to one aspect of the present disclosure, there is provided amethod for providing a viewport division scheme for VR video streaming,comprising:

obtaining a projection area of VR video;

dividing the projection area into a plurality of grid blocks;

defining a core area in the projection area;

dividing the core area into a plurality of core blocks;

combining the core blocks to provide a plurality of viewport blocks; and

establishing a mapping relation between the plurality of viewport blocksand the plurality of grid blocks, wherein the plurality of viewportblocks are related to a user's field of view.

Preferably, the step of obtaining a projection area of VR videocomprises:

projecting the VR video into a rectangle with the aspect ratio of 2:1 byequivalent rectangle matrix to obtain the projection area.

Preferably, the step of dividing the projection area into a plurality ofgrid blocks comprises:

dividing the projection area into a plurality of equal portions; and

dividing each of the plurality of equal portions into the same number ofgrid blocks.

Preferably, the method further comprises creating identifications forthe plurality of grid blocks, the plurality of core blocks and theviewport, and establishing a mapping relationship between the viewportand the plurality of grid blocks by the identifications.

Preferably, the step of creating identifications for the plurality ofgrid blocks, the plurality of core blocks and the viewport, andestablishing a mapping relationship between the viewport and theplurality of grid blocks by the identifications comprises:

setting the identificationid_(block) of a grid block as a positiveinteger started from zero, so as to satisfy Equation (1)

id_(block)ϵ[0,n−1],id_(block) ϵN ⁺  (1);

setting an edge length of the grid block to satisfy Equation (2),

$\begin{matrix}{{width}_{block} = \frac{{height}_{video}}{\sqrt{\frac{n}{2}}}} & (2)\end{matrix}$

where height_(video) represents an image height, and N⁺ represents apositive integer;

setting the core area to be a set of grid blocks Set_(core) whichsatisfy Equation (3),

$\begin{matrix}{{{Set}_{core} = \left\{ {\left. {id}_{block} \middle| {id}_{block} \right. = \left\{ {\frac{n}{4},{\frac{n}{4} + 1},\ldots \mspace{14mu},{\frac{3n}{4} - 2},{\frac{3n}{4} - 1}} \right\}} \right\}};} & (3)\end{matrix}$

defining a core block to have a width equal to that of the plurality ofgrid blocks and a height equal to that of the core area, and setting theidentification id_(core) _(_) _(block) of the core block, so as tosatisfy Equation (4),

$\begin{matrix}{{id}_{core\_ block} = \left\{ {\begin{matrix}{{{id}_{block}\mspace{14mu} \% \mspace{14mu} 2\sqrt{\frac{n}{2}}},{{id}_{block} \in {Set}_{core}}} \\{{null},{others}}\end{matrix};} \right.} & (4)\end{matrix}$

defining a viewport block in the core area to have a width determined bya user's field of view and a height equal to that of the core area,where a width width_(viewport) _(_) _(block) of the viewport blocksatisfies Equation (5),

$\begin{matrix}{{{width}_{viewport\_ block} = \frac{{fov}*{height}_{video}}{\pi}},} & (5)\end{matrix}$

where fov represents the user's field of view;

defining the number of the core blocks in the viewport block to be i,which satisfies equation (6),

$\begin{matrix}{{i = \frac{{width}_{viewport\_ block}}{{width}_{block}}};} & (6)\end{matrix}$

for any identification of the viewport block, the identifications of thecore blocks in the viewport block can be obtained according to Equation(7),

$\begin{matrix}{{f\left( {id}_{viewport\_ block} \right)} = \left\{ {\begin{matrix}\begin{matrix}{\begin{Bmatrix}{{id}_{viewport\_ block},{{id}_{viewport\_ block} + 1},\ldots \mspace{14mu},{{id}_{viewport\_ block} +}} \\{{i - 2},{{id}_{viewport\_ block} + i - 1}}\end{Bmatrix};} \\{{id}_{viewport\_ block} \in \left\lbrack {0,{{2\sqrt{\frac{n}{2}}} - i}} \right\rbrack} \\{\begin{Bmatrix}{{id}_{viewport\_ block},{{id}_{viewport\_ block} + 1},\ldots \mspace{14mu},{{2\sqrt{\frac{n}{2}}} -}} \\{1,0,1,\ldots \mspace{14mu},{i - \left( {{2\sqrt{\frac{n}{2}}} - {id}_{viewport\_ block}} \right) - 1}}\end{Bmatrix};}\end{matrix} \\{,{{id}_{viewport\_ block} \in \left\lbrack {{{2\sqrt{\frac{n}{2}}} - i + 1},{{2\sqrt{\frac{n}{2}}} - 1}} \right\rbrack}}\end{matrix};\mspace{11mu} (7)} \right.} & (7)\end{matrix}$

for any identification of the core block, the identification of theviewport block including the core block can be obtained uniquelyaccording to Equation (8),

id_(viewport) _(_) _(block) =f(id_(core) _(_) _(block))=id_(core) _(_)_(block) _(_) _(1st)  (8),

where id_(core) _(_) _(block) _(_) _(1st) represents the identificationof the first core block that is included in the viewport block.

Preferably, the step of dividing the core area into the plurality ofcore blocks comprises:

dividing the core area into the plurality of core blocks with equalareas.

Preferably, the plurality core blocks each have a height equal to of thecentral and the core area has an area equal to integral times of thearea of a grid block.

Preferably, the method further comprises dividing the VR video data intoa plurality of sub-data according to the plurality of grid blocks,wherein each sub-data corresponds to one of the grid blocks, anddetermining a mapping relationship between the plurality of sub-data andthe viewport according to the mapping relationship between the pluralityof grid blocks and the viewport.

Preferably, the method further comprises creating a plurality ofviewport blocks according to a user's field of view.

According to another aspect of the present disclosure, there is provideda system for providing a viewport for VR video streaming, comprising:

a configuration module, configured to obtain a projection area of VRvideo;

a first division module, configured to divide the projection area into aplurality of grid blocks;

a second division module, configured to define a core area in theprojection area;

a third division module, configured to divide the core area into aplurality of core blocks;

a combination module, configured to combine the core blocks to provide aplurality of viewport blocks;

a mapping module, configured to establish a mapping relationship betweenthe viewport and the plurality of grid blocks, wherein the plurality ofviewport blocks are related to a user's field of view.

Preferably, the configuration module

projects the VR video into a rectangle with the aspect ratio of 2:1 byequivalent rectangle matrix to obtain the projection area.

In this embodiment, the VR source video data is divided into a pluralityof grid blocks, and a mapping table between the viewport blocks and thegrid blocks is established according to a specific field of view. Whenthe user's field of view is changed, the viewport block is retrievedaccording to the mapping table, and the video data of a viewport areaand a non-viewport area are processed by different methods to have abetter view experience.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects, advantages and features of the presentdisclosure will become more fully understood from the detaileddescription given hereinbelow in connection reference with the appendeddrawings, and wherein:

FIG. 1 is a diagram illustrating an example the network-based virtualreality playback system;

FIG. 2 is a flowchart presents the process of the playback system inFIG. 1;

FIG. 3 is a flowchart presents the method for providing a viewportdivision scheme for VR video streaming;

FIG. 4A-4C schematically show a core area, grid blocks and core blocksof the video data; and

FIG. 5 is a block diagram illustrating a system for providing a viewportfor VR video streaming.

DETAILED DESCRIPTION OF THE DISCLOSURE

Exemplary embodiments of the present disclosure will be described inmore details below with reference to the accompanying drawings. In thedrawings, like reference numerals denote like members. The figures arenot drawn to scale, for the sake of clarity. Moreover, some well knownparts may not be shown.

FIG. 1 is a diagram illustrating an example network of a VR playbacksystem. The VR playback system 10 includes a server 100 and a displaydevice 120 which are coupled with each other through a network 110, anda VR device. For example, the server 100 may be a stand-alone computerserver or a server cluster. The server 100 is used to store variousvideo data and to store various applications that process these videodata. For example, various daemons run on the server 100 in real time,so as to process various video data in the server 100 and to respondvarious requests from VR devices and the display device 120. The network110 may be a selected one or selected ones from the group consisting ofan internet, a local area network, an internet of things, and the like.For example, the display device 120 may be any of the computing devices,including a computer device having an independent display screen and aprocessing capability. The display device 120 may be a personalcomputer, a laptop computer, a computer workstation, a server, amainframe computer, a palmtop computer, a personal digital assistant, asmart phone, an intelligent electrical apparatus, a game console, aniPAD/iPhone, a video player, a DVD recorder/player, a television, or ahome entertainment system. The display device 120 may store VR playersoftware as a VR player. When the VR player is started, it requests anddownloads various video data from the server 100, and renders and playsthe video data in the display device. In this example, the VR device 130is a stand-alone head-mounted device that can interact with the displaydevice 120 and the server 100, and transmit information to the displaydevice 120 and/or the server 100 by signal, including change of theposition of a user's helmet, change of the eye sight, and the like. Thedisplay device 120 can process flexibly the video data which is playedaccording to the information. In some embodiments, when a user'sposition is changed, the display device 120 determines that a centralviewport of the user has been changed, and starts to play video datawith a high resolution in the central viewport.

In the above embodiment, the VR device 130 is a stand-alone head-mounteddevice. However, those skilled in the art should understand that the VRdevice 130 is not limited thereto, and the VR device 130 may also be anall-in-one head-mounted device. The all-in-one head-mounted deviceitself has a display screen, so that it is not necessary to connect theall-in-one head-mounted device with the external display device. Forexample, in this example, if the all-in-one head-mounted device is usedas the VR device, the display device 120 may be omitted. At this point,the all-in-one head-mounted device is configured to obtain video datafrom the server 100 and to perform playback operation, and theall-in-one head-mounted device is also configured to detect user's fieldof view and to adjust the playback operation according to the user'sfield of view.

FIG. 2 is a flowchart showing a method used in the VR playback system ofFIG. 1. The method includes the following steps.

In step S10, the server performs source video data processing.

In step S20, display device side obtains some related information byinteracting with the VR device.

In step S30, according to the related information, the display deviceside requests the server side to provide the video data and receives thevideo data.

In step S40, the display device side renders the received video data.

Wherein, the step S10 is used to process the video data stored on theserver side. In this step, the video data can be divided into those in aviewport are and those in a non-viewport area, and then can be processedby different methods to reduce data transmission for the non-viewport.Therefore, the present disclosure further provides a method forproviding a viewport division scheme to achieve the above functions.

FIG. 3 is a flowchart presents the method for providing a viewportdivision scheme for VR video streaming. Specifically, the methodcomprises following steps.

In step S100, a projection area of VR video is obtained.

Although the VR video data is captured in a 360-degree panoramic view ofthe real-world environment, a projection process may be included in a VRvideo production process and a rendering process to change the VR videodata to two-dimensional spatial data. The original video data may besubjected to the projection process, for example, an equivalentrectangle matrix process with the aspect ratio of 2:1, to obtain aprojection area. In a case that the VR video data has been subjected tothe projection process, the projection area can be obtained by decodingthe VR video data. Two main VR video formats include the video data withthe aspect ratio of 1:1 and the aspect ratio of 2:1, which arewell-known in the industry as film sources. In some cases, the serverneeds to perform a normalization process in view of the user'srequirements. For example, the video data with the aspect ratio of 1:1is processed into the video data with the aspect ratio of 2:1 which issuitable for the user's VR device. In the equivalent rectangle matrixprojection, for example, in an equally-spaced cylindrical projection,the meridians can be rendered to be vertical straight lines having aconstant pitch, or the latitude circles can be rendered to be horizontalstraight lines having a constant pitch. It should be noted that the VRvideo data here refers to original data and/or intermediate data in anyVR processing.

In step S200, a core area of the projection area is divided.

As described above, the projection area of the VR video data is obtainedin the previous step S100. In this step, the core area of the projectionarea is divided. The data after being projected is generally distorted.For example, a full-view image may be rendered by an equivalentrectangle matrix projection process to obtain an area with the aspectratio of 2:1. According to stretching characteristics of the equivalentrectangle matrix projection, when an image is close to a pole, the imagewill be stretched and distorted. The degree of pixel distortion will behigher. Therefore, according to stretching characteristics of theequivalent rectangle matrix projection, a central portion will bedefined at the pole.

In step S300, a block size is defined according to the parameter N.

The parameter N is a given parameter. In this step, an area of each gridblock is obtained according to the N value. For example, assuming thatthe normalized video data has an area S and N is 32, each grid block hasa block size equal to S/32.

In step S400, the core area is divided into grid blocks.

After the core area is determined, the core area can be divided into Mcore blocks based on a given value M. The core blocks may be numberedfor identifying each core block. Generally, the number starts from 0.

In step S500, the projection area is divided into grid blocks.

In this step, the projection area is divided into a plurality of equalportions, each of which corresponds to a grid block. It should beunderstood that the grid block here is a portion of the VR video data.After that, each grid block is numbered. Generally, the number startsfrom 0.

In step S600, the core blocks are combined into a viewport block.

The viewport block contains one or more core blocks. When a field ofview of the VR device is changed, the viewport block is also changed.Accordingly, the core blocks in the viewport block are also changed.Therefore, the core blocks may be combined into the viewport blockaccording to the user's field of view.

In step S700, a mapping table between the viewport blocks and the gridblocks is established.

Based on the viewport block of each VR video data, which is obtained instep S600, the mapping table between the viewport blocks and the gridblocks is established. In this embodiment, the VR source video data isdivided into a plurality of grid blocks, and a viewport block is definedaccording to a specific field of field of view (fov) to establish themapping table between the viewport blocks and the grid blocks. When theuser's field of view is changed, the viewport block is changed andobtained according to the mapping table. The video data is processed bydifferent methods for the viewport area and for the non-viewport area,so as to have a better viewing experience. Further, the user's field ofview is proportional to the area of the viewport block. Many viewportblocks can be defined for many fields of views (fov). In an alternativeembodiment, the grid blocks, the core blocks and the viewport blockshave identifications, and a mapping relationship between the viewportblocks and the grid blocks is established with the identifications.

It should be noted that in the above embodiments, the video data is notactually segmented. Therefore, in an optional embodiment of the presentdisclosure, a segmentation step may also be included in which the videodata is divided into a plurality of sub-data according to a plurality ofgrid blocks which are obtained according to the above embodiment. Eachsub-data corresponds to a grid block. According to the above mappingrelationship between the viewport blocks and the grid blocks, one candetermine the mapping relationship between the plurality of sub-data andthe plurality of viewport blocks.

Under some limitations, mathematical equations can be established basedon the identifications of the grid blocks, the core blocks and theviewport blocks, so that the identification of the viewport block can bedetermined according to the identifications of the grid blocks and/orthe core blocks, or the identifications of the core blocks can bedetermined according to the identification of the viewport block.Details will be described in the following paragraphs.

Assuming that an image of the video data has the aspect ratio of 2:1 andis divided into n grid units with the aspect ratio of 1:1, and each gridunit is a grid block and has the identification id_(block) as follows,

id_(block)ϵ[0,n−1],id_(block) ϵN ⁺  (1);

An edge length of the grid block satisfies Equation (1).

$\begin{matrix}{{width}_{block} = \frac{{height}_{video}}{\sqrt{\frac{n}{2}}}} & (2)\end{matrix}$

where height_(video) represents an image height, and N⁺ represents apositive integer;

According characteristics of the equivalent rectangle matrix projection,the core area is defined as a set of grid blocks Set_(core) whichsatisfy Equation (3),

$\begin{matrix}{{{Set}_{core} = \left\{ {{{id}_{block}{id}_{block}} = \left\{ {\frac{n}{4},{\frac{n}{4} + 1},\ldots \mspace{14mu},{\frac{3n}{4} - 2},{\frac{3n}{4} - 1}} \right\}} \right\}};} & (3)\end{matrix}$

A core block is defined to have a width equal to that of the grid blocksand a height equal to that of the core are. The identification id_(core)_(_) _(block) of the core block satisfies Equation (4),

$\begin{matrix}{{id}_{core\_ block} = \left\{ {\begin{matrix}{{{id}_{block}\mspace{14mu} \% \mspace{11mu} 2\sqrt{\frac{n}{2}}},{{id}_{block} \in {Set}_{core}}} \\{{null},{others}}\end{matrix};} \right.} & (4)\end{matrix}$

A viewport block is defined as having blocks in the core area, which aredetermined by a user's field of view fov and have a width equal to thatof the core area. A width width_(viewport) _(_) _(block) of the viewportblock satisfies Equation (5),

$\begin{matrix}{{{width}_{viewport\_ block} = \frac{{fov}*{height}_{video}}{\pi}},} & (5)\end{matrix}$

The number of the core blocks in the viewport block is defined as i,which satisfies equation (6),

$\begin{matrix}{{i = \frac{{width}_{viewport\_ block}}{{width}_{block}}};} & (6)\end{matrix}$

For any identification of the viewport block, the identifications of thecore blocks in the viewport block can be obtained according to Equation(7),

$\begin{matrix}{{f\left( {id}_{viewport\_ block} \right)} = \left\{ {\begin{matrix}\begin{matrix}{\begin{Bmatrix}{{id}_{viewport\_ block},{{id}_{viewport\_ block} + 1},\ldots \mspace{14mu},{{id}_{viewport\_ block} +}} \\{{i - 2},{{id}_{viewport\_ block} + i - 1}}\end{Bmatrix};} \\{{id}_{viewport\_ block} \in \left\lbrack {0,{{2\sqrt{\frac{n}{2}}} - i}} \right\rbrack} \\{\begin{Bmatrix}{{id}_{viewport\_ block},{{id}_{viewport\_ block} + 1},\ldots \mspace{14mu},{{2\sqrt{\frac{n}{2}}} -}} \\{1,0,1,\ldots \mspace{14mu},{i - \left( {{2\sqrt{\frac{n}{2}}} - {id}_{viewport\_ block}} \right) - 1}}\end{Bmatrix};}\end{matrix} \\{,{{id}_{viewport\_ block} \in \left\lbrack {{{2\sqrt{\frac{n}{2}}} - i + 1},{{2\sqrt{\frac{n}{2}}} - 1}} \right\rbrack}}\end{matrix};\mspace{11mu} (7)} \right.} & (7)\end{matrix}$

For any identification of the core block, the identification of theviewport block including the core block, which represents theidentification of the first core block, can be obtained uniquelyaccording to Equation (8), The identification satisfies Equation (8),

id_(viewport) _(_) _(block) =f(id_(core) _(_) _(block))=id_(core) _(_)_(block) _(_) _(1st)  (8),

where id_(core) _(_) _(block) _(_) _(1st) represents the identificationof the first core block that is included in the viewport block.

FIG. 4A-4C schematically show a core area, grid blocks and core blocksof the video data.

In this example, 400 represents a projection area, 401 represents a corearea, and N is equal to 32. That is to say, the projection area isdivided into 32 grid blocks, which are numbered as 0-31. The core blocksare numbered as 0-7. Assuming that one viewport block (not shown)contains two core blocks which are numbered as 1 and 2, the viewportblock contains those grid blocks being numbered as 9-10 and 17-18. Thus,it is possible to establish a mapping relationship between the viewportblocks and the grid blocks. In this case, the identifications of thegrid blocks, the core blocks and the viewport blocks may be numbered andbe verified by the above equations.

It should be understood that this example is given only for the mappingrelationship among the grid blocks, the core blocks and the viewportblocks under ideal conditions. That is to say, in this example, the coreblocks and the grid blocks and the viewport blocks overlap each other.However, the present disclosure is not limited to this and can beapplied in a case that the grid blocks, the core blocks and the viewportblocks partially overlap each other.

FIG. 5 is a block diagram illustrating a system for providing a viewportfor VR video streaming.

The system includes a configuration module 501, a first division module503, a second division module 502, a third division module 504, acombination module 505, and a mapping module 506.

The configuration module 501 is configured to obtain a projection areaof VR video. In a case that the VR video data has been processed intotwo-dimensional data, the VR video data can decoded to obtain theprojection area of the video data from a parameter. In another case thatthe video data is not processed into two-dimensional data, theprojection area can be obtained by projecting the VR video into arectangle by an equivalent rectangle matrix projection process. Two mainVR video formats include the video data with the aspect ratio of 1:1 andthe aspect ratio of 2:1, which are well-known in the industry as filmsources. The original VR video format may be normalized to have theaspect ratio of 2:1, and then further processed.

The first division module 503 is configured to divide the projectionarea into N grid blocks. For example, the projection area is dividedinto 32 equal portions. As a result, the 32 grid blocks each are aportion of the projection area with equal size.

The second division module 502 is configured to divide a core area ofthe projection area according to the user's field of view. The core areais defined in the projection area. For example, for a rectangle, acentral portion in the X-axis direction or the Y-axis direction isdefined as the core area.

The third division module 504 is configured to divide the core area intoa plurality of core blocks. The core area is divided into a plurality ofgrid units, generally having equal area, but is not limited thereto. Forexample, if an area of an edge unit is insufficient, the area of theedge unit will be smaller.

The combination module 505 is configured to combine the core blocks intoa plurality of viewport blocks. The core blocks are combined accordingto a predetermined rule. For example, two adjacent core blocks arecombined into one viewport block. In another example, a core block at acentral point and those core blocks surrounding the central point arecombined into one viewport block.

The mapping module 506 is configured to establish a mapping relationshipbetween the viewport blocks and the grid blocks. Each viewport blockcontains a plurality of core blocks. Each core block may are mixed withone or more grid blocks. Correspondingly, one or more grid blocks may beretrieved according to the core blocks.

By establishing the mapping relationship between the viewport block andthe grid blocks, the system can locate the viewport block and improveviewing experience effect by optimizing the video data of the viewportblock.

Preferably, the above system for providing a viewport for VR videostreaming may further comprise a segmentation module (not shown). Thesegmentation module divides the video data into a plurality of sub-dataaccording to the plurality of grid blocks. Each sub-data corresponds toa grid. The mapping relationship between the plurality of sub-data andthe plurality of viewport blocks can be determined by the mappingrelationship between the plurality of viewport blocks and the pluralityof grid blocks.

The configuration module projects the VR video into a rectangle with theaspect ratio of 2:1 by equivalent rectangle matrix to obtain theprojection area.

The embodiments were chosen and described in order to best explain theprinciples of the disclosure and its practical applications, to therebyenable others skilled in the art to best utilize the disclosure. Thedisclosure is intended to cover alternatives, modifications andequivalents that may be included within the spirit and scope of thedisclosure as defined by the appended claims.

The foregoing descriptions of specific embodiments of the presentdisclosure have been presented, but are not intended to limit thedisclosure to the precise forms disclosed. It will be readily apparentto one skilled in the art that many modifications and changes may bemade in the present disclosure. Any modifications, equivalence,variations of the preferred embodiments can be made without departingfrom the doctrine and spirit of the present disclosure.

1. A method for providing a viewport division scheme for VR videostreaming, comprising: obtaining a projection area of VR video; dividingthe projection area into a plurality of grid blocks; defining a corearea in the projection area; dividing the core area into a plurality ofcore blocks; obtaining a plurality of viewport blocks by combining theplurality of core blocks; and establishing a mapping relation betweenthe plurality of viewport blocks and the plurality of grid blocks,wherein the plurality of viewport blocks is related to a user's field ofview.
 2. The method according to claim 1, wherein the step of obtainingthe projection area of VR video comprises: projecting the VR video intoa rectangle with the aspect ratio of 2:1 by equivalent rectangle matrixto obtain the projection area.
 3. The method according to claim 1,wherein the step of dividing the projection area into the plurality ofgrid blocks comprises: dividing the projection area into a plurality ofequal portions.
 4. The method according to claim 1, further comprising:creating identifications for the plurality of grid blocks, the pluralityof core blocks and the plurality of viewport blocks, and establishing amapping relationship between the plurality of viewport blocks and theplurality of grid blocks by the identifications.
 5. The method accordingto claim 4, wherein the step of creating identifications for theplurality of grid blocks, the plurality of core blocks and the viewport,and establishing the mapping relationship between the plurality ofviewport blocks and the plurality of grid blocks by the identificationscomprises: setting the identification id_(block) of a grid block as apositive integer started from zero, so as to satisfy Equation (1)id_(block)ϵ[0,n−1],id_(block) ϵN ⁺  (1); setting an edge length of thegrid block to satisfy Equation (2), $\begin{matrix}{{width}_{block} = \frac{{height}_{video}}{\sqrt{\frac{n}{2}}}} & (2)\end{matrix}$ where height_(video) represents an image height, and N⁺represents a positive integer; setting the core area to be a set of gridblocks Set_(core) which satisfy Equation (3), $\begin{matrix}{{{Set}_{core} = \left\{ {{{id}_{block}{id}_{block}} = \left\{ {\frac{n}{4},{\frac{n}{4} + 1},\ldots \mspace{14mu},{\frac{3n}{4} - 2},{\frac{3n}{4} - 1}} \right\}} \right\}};} & (3)\end{matrix}$ defining a core block to have a width equal to that of thegrid blocks and a height equal to that of the core area, and setting theidentification id_(core) _(_) _(block) of the core block, so as tosatisfy Equation (4), $\begin{matrix}{{id}_{core\_ block} = \left\{ {\begin{matrix}{{{id}_{block}\mspace{14mu} \% \mspace{11mu} 2\sqrt{\frac{n}{2}}},{{id}_{block} \in {Set}_{core}}} \\{{null},{others}}\end{matrix};} \right.} & (4)\end{matrix}$ defining a viewport block in the core area to have a widthdetermined by a user's field of view and a height equal to that of thecore area, where a width width_(viewport) _(_) _(block) of the viewportblock satisfies Equation (5), $\begin{matrix}{{{width}_{viewport\_ block} = \frac{{fov}*{height}_{video}}{\pi}},} & (5)\end{matrix}$ where fov represents the user's field of view; definingthe number of the core blocks in the viewport block to be i, whichsatisfies equation (6), $\begin{matrix}{{i = \frac{{width}_{viewport\_ block}}{{width}_{block}}};} & (6)\end{matrix}$ for any identification of the viewport block, theidentifications of the core blocks in the viewport block can be obtainedaccording to Equation (7), $\begin{matrix}{{f\left( {id}_{viewport\_ block} \right)} = \left\{ {\begin{matrix}\begin{matrix}{\begin{Bmatrix}{{id}_{viewport\_ block},{{id}_{viewport\_ block} + 1},\ldots \mspace{14mu},{{id}_{viewport\_ block} +}} \\{{i - 2},{{id}_{viewport\_ block} + i - 1}}\end{Bmatrix};} \\{{id}_{viewport\_ block} \in \left\lbrack {0,{{2\sqrt{\frac{n}{2}}} - i}} \right\rbrack} \\{\begin{Bmatrix}{{id}_{viewport\_ block},{{id}_{viewport\_ block} + 1},\ldots \mspace{14mu},{{2\sqrt{\frac{n}{2}}} -}} \\{1,0,1,\ldots \mspace{14mu},{i - \left( {{2\sqrt{\frac{n}{2}}} - {id}_{viewport\_ block}} \right) - 1}}\end{Bmatrix};}\end{matrix} \\{,{{id}_{viewport\_ block} \in \left\lbrack {{{2\sqrt{\frac{n}{2}}} - i + 1},{{2\sqrt{\frac{n}{2}}} - 1}} \right\rbrack}}\end{matrix};\mspace{11mu} (7)} \right.} & (7)\end{matrix}$ for any identification of the core block, theidentification of the viewport block can be obtained uniquely accordingto Equation (8),id_(viewport) _(_) _(block) =f(id_(core) _(_) _(block))=id_(core) _(_)_(block) _(_) _(1st)  (8), where id_(core) _(_) _(block) _(_) _(1st)represents the identification of the first core block that is includedin the viewport block.
 6. The method according to claim 1, wherein thestep of dividing the core area into the plurality of core blockscomprises: dividing the core area into the plurality of core blocks withequal areas.
 7. The method according to claim 1, wherein the pluralityof core blocks each have a height equal to that of the core area, andthe core area has an area equal to an integral times that of the area ofa grid block.
 8. The method according to claim 1, further comprising:dividing the VR video data into a plurality of sub-data according to theplurality of grid blocks, wherein each sub-data corresponds to one ofthe grid blocks, and determining a mapping relationship between theplurality of sub-data and the viewport according to the mappingrelationship between the plurality of grid blocks and the viewport. 9.The method according to claim 1, further comprising: creating aplurality of viewport blocks according to a user's field of view.
 10. Asystem for providing a viewport division scheme for VR video streaming,comprising: a configuration module, configured to obtain a projectionarea of VR video; a first division module, configured to divide theprojection area into a plurality of grid blocks; a second divisionmodule, configured to define a core area in the projection area; a thirddivision module, configured to divide the core area into a plurality ofcore blocks; a combination module, configured to combine the core blocksto provide a plurality of viewport blocks; and a mapping module,configured to establish a mapping relationship between the plurality ofviewport blocks and the grid blocks, wherein the plurality of viewportblocks are related to a user's field of view.
 11. The system accordingto claim 1, wherein the configuration module projects the VR video intoa rectangle with the aspect ratio of 2:1 by equivalent rectangle matrixto obtain the projection area.